package com.hsnn.medstgmini.sys.controller;

import java.util.Date;

import javax.servlet.http.HttpSession;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.hsnn.medstgmini.Constants;
import com.hsnn.medstgmini.base.std.model.CompClassify;
import com.hsnn.medstgmini.base.std.model.CompReg;
import com.hsnn.medstgmini.base.std.model.HospClassify;
import com.hsnn.medstgmini.base.std.model.HospLevel;
import com.hsnn.medstgmini.base.std.service.StdCompinfoManager;
import com.hsnn.medstgmini.base.std.service.StdExpertManager;
import com.hsnn.medstgmini.base.std.service.StdHospInfoManager;
import com.hsnn.medstgmini.sys.model.RegCompInfo;
import com.hsnn.medstgmini.sys.model.RegHealthbureau;
import com.hsnn.medstgmini.sys.model.RegHospInfo;
import com.hsnn.medstgmini.sys.model.SysUser;
import com.hsnn.medstgmini.sys.service.RegHealthbureauManager;
import com.hsnn.medstgmini.sys.service.SysRoleManager;
import com.hsnn.medstgmini.sys.service.SysUserManager;
import com.hsnn.medstgmini.sys.service.SysUserRegisterManager;
import com.hsnn.medstgmini.util.Pagination;

/**
 * @category 注册用户
 * @author 蔡春龙
 * @date 2015年6月23日
 */
@Controller
@RequestMapping("/regUser")
public class SysUserRegisterController {

	private static final Logger log = Logger
			.getLogger(SysUserRegisterController.class);

	@Autowired
	private RegHealthbureauManager regHealthbureauManager;
	
	@Autowired
	private SysUserRegisterManager userRegisterManager;

	@Autowired
	private StdHospInfoManager hospInfoManager;

	@Autowired
	private SysUserManager userManager;

	@Autowired
	private SysRoleManager roleManager;

	@Autowired
	private StdCompinfoManager compinfoManager;

	@Autowired
	private StdExpertManager expertManager;

	@Autowired
	private HttpSession session;

	/**
	 * @category 获取当前登陆人信息
	 * @date 2015年6月14日
	 * @return
	 */
	@SuppressWarnings("unused")
	private SysUser getUser() {
		return (SysUser) session.getAttribute(Constants.USERINFO);
	}

	/**
	 * @category 跳转注册页面
	 * @date 2015年6月23日
	 * @return
	 */
	@RequestMapping("/toUserRegister")
	public String toUserRegister() {
		return "/sys/userRegister";
	}

	/**
	 * @category  跳转卫生局注册页面
	 * @author 韩守松
	 * @date   2015年11月2日
	 * @param  @param model
	 * @param  @return
	 */
	@RequestMapping("/toRegHealthbureau")
	public String toRegHealthbureau(){
		return "/sys/regHealthbureau";
	}
	
	/**
	 * @category 保存卫生局注册信息
	 * @author 韩守松
	 * @date   2015年11月2日
	 * @param  @param regheaBur
	 * @param  @return
	 */
	@RequestMapping("/saveRegheaBurInfo")
	@ResponseBody
	public Pagination saveRegheaBurInfo(RegHealthbureau regheaBur){
		Pagination page = new Pagination();
		try {
			if (regheaBur != null) {
				regheaBur.setRegDatetime(new Date());
				regheaBur.setAuditStatus(0);
				regHealthbureauManager.saveRegheaBurInfo(regheaBur);
				page.setSuccess(true);
			}
		} catch (Exception e) {
			log.error("",e);
			page.setSuccess(false);
			page.setMsg("保存失败！");
		}
		return page;
	}
	/**
	 * @category 跳转医疗机构注册页面
	 * @date 2015年6月23日
	 * @return
	 */
	@RequestMapping("/toRegisterHospital")
	public String toRegisterHospital(Model model) {
		model.addAttribute("classifyList", HospClassify.values());
		model.addAttribute("levelList", HospLevel.values());
		return "/sys/registerHospital";
	}



	/**
	 * @category 保存医疗机构注册信息
	 * @param hospInfo
	 * @param opType
	 * @return
	 */
	@RequestMapping("/saveRegHospInfo")
	@ResponseBody
	public Pagination saveRegHospInfo(RegHospInfo hospInfo) {
		Pagination page = new Pagination();
		try {
			if (hospInfo != null) {
				userRegisterManager.saveRegHospInfo(hospInfo);
				page.setSuccess(true);
			}
		} catch (Exception e) {
			log.error("",e);
			page.setSuccess(false);
			page.setMsg("保存失败！");
		}
		return page;
	}

	/**
	 * @category 跳转企业注册页面
	 * @date 2015年6月23日
	 * @param compType1生产企业2配送企业
	 * @return
	 */
	@RequestMapping("/toRegisterCompany")
	public String toRegisterCompany(Model model){
		model.addAttribute("classifyList", CompClassify.values());
		model.addAttribute("levelList", CompReg.values());
		return "/sys/registerComp";
	}
	/**
	 * @category 保存企业注册信息
	 * @param compInfo
	 * @param opType
	 * @return
	 */
	@RequestMapping("/saveRegComp")
	@ResponseBody
	public Pagination saveRegCompInfo(RegCompInfo compInfo) {
		Pagination page = new Pagination();
		try {
			if (compInfo != null) {
				
				userRegisterManager.saveRegCompInfo(compInfo);
				page.setSuccess(true);
			}
		} catch (Exception e) {
			log.error("",e);
			page.setSuccess(false);
			page.setMsg("保存失败！");
		}
		return page;
	}
	
	
	
}
